//Motorista.java
//Classe modelo do Motorista
package modelo;

import java.io.Serializable;
import java.sql.Date;
import java.util.Objects;
import javax.persistence.*;

/**
 * @author Diego Heusser
 * @author Eder Schramm
 */
@Entity
@Table(name = "motorista")
public class Motorista implements Serializable{
    
    @Id
    @Column(name = "id")
    protected int id;
    @Column(name = "habilitacao")
    protected String habilitacao;
    @Column(name = "genero")
    protected String genero;
    @Column(name = "nome")
    protected String nome;
    @Column(name = "dataNascimento")
    protected Date dataNascimento;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getHabilitacao() {
        return habilitacao;
    }

    public void setHabilitacao(String habilitacao) {
        this.habilitacao = preenche(habilitacao, 30);
    }

    public String getGenero() {
        return genero;
    }

    public void setGenero(String genero) {
        this.genero = preenche(genero, 30);
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = preenche(nome, 50);
    }

    public Date getDataNascimento() {
        return dataNascimento;
    }

    public void setDataNascimento(Date dataNascimento) {
        this.dataNascimento = dataNascimento;
    }

    private String preenche(String texto, int tamanho) {
        String aux;
        int restante;
        if (texto.length() < tamanho) {
            aux = texto;
            restante = tamanho - texto.length();
            for (int i = 0; i < restante; i++) {
                aux += " ";
            }
        } else if (texto.length() > tamanho) {
            aux = texto.substring(0, tamanho);
        } else {
            aux = texto;
        }
        return aux;
    }

    @Override
    public String toString() {
        return nome;
    }

    @Override
    public int hashCode() {
        int hash = 7;
        hash = 67 * hash + this.id;
        hash = 67 * hash + Objects.hashCode(this.habilitacao);
        hash = 67 * hash + Objects.hashCode(this.genero);
        hash = 67 * hash + Objects.hashCode(this.nome);
        hash = 67 * hash + Objects.hashCode(this.dataNascimento);
        return hash;
    }

    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final Motorista other = (Motorista) obj;
        if (this.id != other.id) {
            return false;
        }
        if (!Objects.equals(this.habilitacao, other.habilitacao)) {
            return false;
        }
        if (!Objects.equals(this.genero, other.genero)) {
            return false;
        }
        if (!Objects.equals(this.nome, other.nome)) {
            return false;
        }
        if (!Objects.equals(this.dataNascimento, other.dataNascimento)) {
            return false;
        }
        return true;
    }
    
    
    
}
